#include "algoritmos.h"
#include "Edificio.h"
#include "CargarDatos.h"
#include "Tests.h"
using namespace std;

int main(){
//
//    Matriz ejemplo(3,3);
//    ejemplo.set(1, 1, 12);
//    ejemplo.set(1, 2, -51);
//    ejemplo.set(1, 3, 4);
//    ejemplo.set(2, 1, 6);
//    ejemplo.set(2, 2, 167);
//    ejemplo.set(2, 3, -68);
//    ejemplo.set(3, 1, -4);
//    ejemplo.set(3, 2, 24);
//    ejemplo.set(3, 3, -41);
//
//    Matriz ejemplo2(3, 3);
//    ejemplo2.set(1, 1, 12);
//    ejemplo2.set(1, 2, -51);
//    ejemplo2.set(1, 3, 4);
//    ejemplo2.set(2, 1, 6);
//    ejemplo2.set(2, 2, 167);
//    ejemplo2.set(2, 3, -68);
//    ejemplo2.set(3, 1, -4);
//    ejemplo2.set(3, 2, 24);
//    ejemplo2.set(3, 3, -41);
//
//    cout << "MATRIZ A FACTORIZAR: " << endl;
//    for(int i = 1; i <= ejemplo.size(); i++){
//        for(int j = 1; j <= ejemplo.size(); j++){
//            cout << ejemplo.get(i,j) << " ";
//        }
//        cout << endl;
//    }
//
//    Matriz Q = calcularQRRotaciones(ejemplo);
//    cout << "Rotaciones" << endl;
//    cout << "MATRIZ R: " << endl;
//    for(int i = 1; i <= ejemplo.size(); i++){
//        for(int j = 1; j <= ejemplo.size(); j++){
//            cout << ejemplo.get(i,j) << " ";
//        }
//        cout << endl;
//    }
//
//    cout << "MATRIZ Q: " << endl;
//    for(int i = 1; i <= Q.size(); i++){
//        for(int j = 1; j <= Q.size(); j++){
//            cout << Q.get(i,j) << " ";
//        }
//        cout << endl;
//    }
//    cout << endl << endl << endl;
//    cout << "Reflexiones" << endl;
//    Matriz Q2 = calcularQRReflexiones(ejemplo2);
//
//
//    cout << "MATRIZ R: " << endl;
//    for(int i = 1; i <= ejemplo2.size(); i++){
//        for(int j = 1; j <= ejemplo2.size(); j++){
//            cout << ejemplo2.get(i,j) << " ";
//        }
//        cout << endl;
//    }
//
//    cout << "MATRIZ Q: " << endl;
//    for(int i = 1; i <= Q2.size(); i++){
//        for(int j = 1; j <= Q2.size(); j++){
//            cout << Q2.get(i,j) << " ";
//        }
//        cout << endl;
//    }

    cout << endl << "TESTS QR VEO ITERACIONES VARIANDO ERRORES UTILIZO REFLEXIONES" << endl;
    testAlgoritmoQRIteracionesVariandoError();
    return 0;
}

//int main(){
////    cout << "TESTS REFLEXIONES VEO ITERACIONES VARIANDO TAMAÑO DE LA MATRIZ" << endl;
////    testReflexionesIteracionesVariandoTamanoMatriz();
////
////    cout << endl << "TESTS ROTACIONES VEO ITERACIONES VARIANDO TAMAÑO DE LA MATRIZ" << endl;
////    testRotacionesIteracionesVariandoTamanoMatriz();
////
////    cout << endl << "TESTS QR VEO ERROR VARIANDO ITERACIONES UTILIZO REFLEXIONES" << endl;
////    testAlgoritmoQRErrorVariandoIteraciones();
////
//    cout << endl << "TESTS QR VEO ITERACIONES VARIANDO ERRORES UTILIZO REFLEXIONES" << endl;
//    testAlgoritmoQRIteracionesVariandoError();
////
////    cout << endl << "TESTS QR VEO VALORES USANDO REFLEXIONES" << endl;
////    testAlgoritmoQRValoresUsandoReflexiones();
////
////    cout << endl << "TESTS QR VEO VALORES USANDO ROTACIONES" << endl;
////    testAlgoritmoQRValoresUsandoRotaciones();
////
////    cout << endl << "TESTS QR VEO ITERACIONES VARIANDO TAMAÑO DE LA MATRIZ" << endl;
////    testAlgoritmoQRIteracionesVariandoTamanoMatriz();
//    return 0;
//}

